import platform from 'platform';
import rtcSupport from './rtcSupport';

const checkRtcBrowser = () => {
  const test = platform.ua.match(/(chrome|firefox)\/(\d+)/i);
  if (!test || /Edge\/([\d.]+)/.test(platform.ua)) return false;
  const name = test[1];
  const version = test[2];
  return ((/chrome/i.test(name) && version > 57) || (/firefox/i.test(name) && version > 56));
};

export const checkWebrtc = () => {
  const versionSupport = checkRtcBrowser();
  let isRtcSupported = versionSupport && rtcSupport.supportGetUserMedia && rtcSupport.supportRTCPeerConnection && rtcSupport.supportMediaStream;

  return new Promise((resolve, reject) => {
    if (!isRtcSupported) {
      reject(new Error('当前浏览器不支持WebRTC功能或H264的编解码格式, 无法使用音视频功能, 请使用最新版Chrome、Firefox浏览器'));
    }

    if (!rtcSupport.supportWebAudio) {
      isRtcSupported = false;
      reject(new Error('当前浏览器不支持完整的WebAudio功能, 无法使用音视频功能, 请使用最新版chrome、Firefox浏览器'));
    }

    return resolve();
  });
};

export const checkPlatform = () => {
  return new Promise((resolve, reject) => {
    if (platform.os.family.indexOf('Windows') !== -1 && (platform.os.version === '10' || platform.os.version === '7')) { // 判断是否是win7或win10
      if (/Chrome/gi.test(platform.name) || platform.name === 'Microsoft Edge' || (platform.name === 'IE' && platform.version === '11.0')) { // 判断是否是Chrome, Edge, IE 11
        resolve();
      } else {
        // alert("只支持Chrome、Edge、IE 11");
        reject(new Error('当前浏览器不支持音视频功能，请使用 Chrome、IE 11 或者 Edge 浏览器'));
      }
    } else {
      // alert("只支持win7或win10");
      reject(new Error('当前系统不支持音视频功能，请使用 win7、win10 系统'));
    }
  });
};

export const checkSupport = () => {
  const versionSupport = checkRtcBrowser();
  const isRtcSupported = versionSupport && rtcSupport.supportGetUserMedia && rtcSupport.supportRTCPeerConnection && rtcSupport.supportMediaStream;

  return new Promise((resolve, reject) => {
    if (!isRtcSupported) {
      reject(new Error('当前浏览器不支持WebRTC功能或H264的编解码格式, 无法使用音视频功能, 请使用最新版 Chrome 浏览器'));
      return;
    }

    if (!rtcSupport.supportWebAudio) {
      reject(new Error('当前浏览器不支持完整的 WebAudio 功能, 无法使用音视频功能, 请使用最新版 Chrome 浏览器'));
      return;
    }

    // if (platform.os.family.indexOf('Windows') !== -1 && (platform.os.version === '10' || platform.os.version === '7')) { // 判断是否是win7或win10
    //   if (/Chrome/gi.test(platform.name) || platform.name === 'Microsoft Edge' || (platform.name === 'IE' && platform.version === '11.0')) { // 判断是否是Chrome, Edge, IE 11
    //     resolve();
    //   } else {
    //     // alert("只支持Chrome、Edge、IE 11");
    //     reject(new Error('当前浏览器不支持音视频功能，请使用 Chrome、IE 11 或者 Edge 浏览器'));
    //   }
    // } else {
    //   // alert("只支持win7或win10");
    //   reject(new Error('当前系统不支持音视频功能，请使用 win7、win10 系统'));
    // }

    if (platform.os.family.includes('Windows') && (platform.os.version === '10' || platform.os.version === '7')) { // 判断是否是win7或win10
      if (/Chrome/gi.test(platform.name) || platform.name === 'Microsoft Edge' || (platform.name === 'IE' && platform.version === '11.0')) { // 判断是否是Chrome, Edge, IE 11
        resolve();
      } else {
        // alert("只支持Chrome、Edge、IE 11");
        reject(new Error('当前浏览器不支持音视频功能，请使用 Chrome、IE 11 或者 Edge 浏览器'));
      }
    } else if (platform.os.family.includes('OS')) {
      if (/Chrome/gi.test(platform.name)) { // 判断是否是Chrome, Edge, IE 11
        resolve();
      } else {
        // alert("只支持Chrome、Edge、IE 11");
        reject(new Error('当前浏览器不支持音视频功能，请使用 Chrome、Safari 浏览器'));
      }
      // alert("只支持win7或win10");
    } else {
      reject(new Error('当前系统不支持音视频功能，请使用 win7、win10、Mac 系统'));
    }
  });
};
